package org.example.flinketl.vo;

import java.math.BigDecimal;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Length;

import lombok.Data;
import lombok.ToString;

/**
 * ETC交易
 */
@Data
@ToString
public class EtcMx   implements Vo{
  /** 证件号码 */
  String uid;
  /** ETC账号 */
  @Pattern(regexp = "\\d{20}")
  String etc_acct;
  /** 卡号 */
  @Pattern(regexp = "\\d{16}")
  String card_no;
  /** 车牌号 */
  @Pattern(regexp = "^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9 挂学警港澳]{1})$")
  String car_no;
  /** 客户名称 */
  @Length(min = 1)
  String cust_name;
  /** 交易日期 */
  @Pattern(regexp = "(18|19|20|21)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)")
  String tran_date;
  /** 交易时间 */
  String tran_time;

  /** 交易金额 */
  @NotNull
  BigDecimal tran_amt_fen;
  /** 实收金额 */
  @NotNull
  BigDecimal real_amt;
  /** 优惠金额 */
  BigDecimal conces_amt;
  /** 通行路程 */
  String tran_place;
  /** 手机号码 */
  @NotNull
  @Pattern(regexp = "^[\\d\\*]{7,12}$")
  String mob_phone;
  /** 数据日期 */
  String etl_dt;

  public static String getTableName() {
    return "dm_v_tr_etc_mx";
  }

  @Override
  public String getContentType() {
    return "etc";
  }
}
